package com.mall.order;

import com.mall.order.dto.*;

/**
 * 订单核心相关业务
 * @author Javid Xi
 * @version 1.0
 * @since 2021/7/22
 */
public interface OrderCoreService {

    /**
     * 创建订单
     * @param request 请求参数
     * @return CreateOrderResponse
     */
    CreateOrderResponse createOrder(CreateOrderRequest request);

    /**
     * 取消订单
     * @param request 请求参数
     * @return CancelOrderResponse
     */
    CancelOrderResponse cancelOrder(CancelOrderRequest request);


    /**
     * 删除订单
     * @param request 请求参数
     * @return DeleteOrderResponse
     */
    DeleteOrderResponse deleteOrder(DeleteOrderRequest request);

    /**
     * 修改订单状态
     * @param status 请求参数
     * @param orderId 订单id
     */
    UpdateOrderResponse updateOrder(Integer status,String orderId);

    /**
     * 删除订单与交易（事务）
     * @param request 请求参数
     */
    void deleteOrderWithTransaction(DeleteOrderRequest request);

}
